package com.explorati.design_pattern.creational.builder;

/**
 * 教练类：讲师将所需要的课程相关传给教学教练，由教练和外界沟通 
 * 主要作用：将传入的值进行整合
 * 
 * @author explorati
 *
 */
public class Coach {

	// 课程建造者对象
	private CourseBuilder courseBuilder;

	public void setCourseBuilder(CourseBuilder courseBuilder) {
		this.courseBuilder = courseBuilder;
	}

	/**
	 * 制作课程，并返回courseBuilder对象中的makeCourse方法(返回course对象)
	 * 
	 * @param courseName
	 * @param coursePPT
	 * @param courseVideo
	 * @param courseArticle
	 * @param courseQA
	 * @return
	 */
	public Course makeCourse(String courseName, String coursePPT, String courseVideo, String courseArticle,
			String courseQA) {
		this.courseBuilder.buildCourseName(courseName);
		this.courseBuilder.buildCoursePPT(coursePPT);
		this.courseBuilder.buildCourseArticle(courseArticle);
		this.courseBuilder.buildCourseVideo(courseVideo);
		this.courseBuilder.buildCourseQA(courseQA);
		// 起到转接中介的作用
		return this.courseBuilder.makeCourse();
	}
}
